package Utils


import java.io.{FileSystem, File}
import collection.mutable.ListBuffer

object DirWalker {

  val ProcPath="/proc/"
    
    /***************************************************************
     * Calcul la liste des processus en cours d'exécution
     * Le résultat est stocké dans l'agrument d'entrée
     ***************************************************************/
	  def starkWalk(mListProcess:ListBuffer[domaine.ProcessStatus])={
	    //Console.println("Walking directory : "+ProcPath)
	    val fileRoots = new File(ProcPath).listFiles()
	
	    fileRoots.foreach(
	        file =>
		    {   
		      {
		        val pid = file.getAbsolutePath().split("/")(2)
		        var path:String =null
		        try
		        {
		          path ="/proc/%d/status".format(pid.toInt)
		        }
		        catch
		        {
		          case e:Exception => //Console.println("Invalid format number")
		        }
		        //Console.println(path)
		          
		        var resuledStatus:domaine.ProcessStatus = null
		        
		        try
		        {
		           resuledStatus = domaine.StatusReader.ReadStatus(path)
		        }
		        catch
		        {
		          case e:Exception => //Console.println("Process doesn't exist")
		        }
		        
		        if(resuledStatus!=null)
		        {
		            //Console.println(resuledStatus.toString())
		        	mListProcess+=resuledStatus
		        }
		      }
		    }
		  )
	  }
}